<script>
    // 1、Object.assign(目标对象,参数对象1,参数对象2,,)  合并对象

    let obj = {}

    let obj1 = {
        name: "李重达"
    }

    let obj2 = {
        age: 20,
        name: "苑彪"
    }

    Object.assign(obj, obj2, obj1)

    console.log(obj);//{name: '李重达', age: 20}  {name: '苑彪', age: 20}  {age: 20, name: '李重达'}



    // 2、Object.keys(对象) 获取对象的属性名     key键 属性名

    // console.log(Object.keys);
    console.log(Object.keys(obj));// ['age', 'name']

    // function keys(obj) {
    //     let arr =[]
    //     for (let k in obj) {
    //         console.log(k);//age  name
    //         arr.push(k)
    //     }

    //     return arr
    // }
    // console.log( keys(obj));



    // 3、Object.values(obj)      获取对象的属性值
    console.log( Object.values(obj)  );//[20, '李重达']




    // 4、JSON.stringfiy(obj/arr)   把数组或者对象转成字符串的数组和对象

    console.log(JSON.stringify(obj)); // '{"age":20,"name":"李重达"}'

    console.log( JSON.stringify(  ["A","B",12,34,{name:"ZS"}] )  ); //["A","B",12,34,{"name":"ZS"}]






    // 5、JSON.parse(string)  string长得是数组和对象的样子  parse解析

    let str='{"age":20,"name":"李重达"}'

    console.log(JSON.parse(str)); //{age: 20, name: '李重达'}


    let str1='["A","B",12,34,{"name":"ZS"}]'

    console.log(JSON.parse(str1));// ['A', 'B', 12, 34, {name: 'ZS'}]




    // JSON的方法应用：
    // 1、
    // 前端从后端获取的数据是 '{"age":20,"name":"李重达"}'
    // 必须通过JSON.parse解析成真正的对象或者数组，才能使用

    // 前端向后端传值的时候，后端也只能接收字符串  "aaa"  '{"age":20,"name":"李重达"}'
    // 我们需要把真对象和真数组转换成字符串，然后再向后端传递



    // 2、复杂数据类型转字符串不能用  String  toString  可以用JSON.stringify
    // console.log([1,2,3]+"");//1,2,3
    // console.log( { "name":"zs" }+"" );//[object Object]

    console.log( String( [1,2,3] ) );//1,2,3
    console.log( String( { "name":"zs" }) ); //[object Object]



    // 3、实现深拷贝

    let person={
        name:"zs",
        age:20,
        hobby:["篮球","足球"]
    }


    // let  newPerson=person

    // person.name="ls"

    // console.log(newPerson);
    // console.log(person);


    // 实现深拷贝
    // console.log(JSON.parse(JSON.stringify(person)));
    let newPerson=JSON.parse(JSON.stringify(person))

    person.name="ls"
    person.hobby.push("排球")

    console.log(newPerson);
    console.log(person);

    





</script>